An MPEG (Motion Pictures Experts Group) coding system that uses inter-frame differences is often employed as a technique for compression-coding (hereafter simply referred to as “coding”) moving image information. As the MPEG coding system, in addition to conventionally used MPEG-2 (ISO/IEC 13818-2) and MPEG-4 (ISO/IEC 14496-2), new coding systems such as H.264/MPEG-4 AVC (ISO/IEC 14496-10) (hereafter simply referred to as “H.264”) and VC-1 (SMPTE 421M) are increasingly used in recent years.
In such coding systems, one screen (picture) is divided into blocks each of which is made up of a predetermined number of pixels (luminance components: 16 pixels×16 pixels), and a decoding process or a coding process is performed on a block-by-block basis. This block is called a macroblock.
FIG. 18 is a diagram showing adjacent macroblock dependencies in H.264. In new coding systems represented by H.264, when coding a macroblock, correlation between the coding target macroblock and its neighboring macroblocks is exploited to enhance compression efficiency. Therefore, in order to decode or code an arbitrary macroblock MB10, it is necessary to reference processing results of four adjacent macroblocks, namely, a left adjacent macroblock MB11, an above left adjacent macroblock MB12, an above adjacent macroblock MB13, and an above right adjacent macroblock MB14 that are adjacent to the macroblock MB10, as shown in FIG. 18. This requires these adjacent macroblocks MB11 to MB14 to be decoded or coded beforehand.
Moreover, an image decoding apparatus or an image coding apparatus that executes a decoding process or a coding process in parallel by using a plurality of decoding units or a plurality of coding units that decode or code macroblocks (hereafter, these decoding units or coding units are simply referred to as “macroblock processing units”) is proposed for a high-speed decoding process or coding process. In such an image decoding apparatus or image coding apparatus, the aforementioned adjacent macroblock dependencies need to be solved not by an individual macroblock processing unit but through cooperation between a plurality of macroblock processing units operating in parallel. Accordingly, methods for solving the dependencies are conventionally proposed (for example, see Patent Reference 1).
FIG. 19 is a diagram showing a processing procedure of an image decoding apparatus and an image coding apparatus described in Patent Reference 1 mentioned above. In FIG. 19, the numbers assigned to macroblocks MB indicate a processing order of macroblocks MB in a picture Pic, where macroblocks MB with the same number are processed in parallel. As shown in FIG. 19, the image decoding apparatus and the image coding apparatus start processing from a top left macroblock MB in the picture Pic. In the case of processing an arbitrary macroblock MB, this macroblock MB and a macroblock MB positioned one row below and two columns to the left of the macroblock MB are processed in parallel, thereby solving the aforementioned adjacent macroblock dependencies.
Which is to say, to process (decode or code) a macroblock MB, information showing processing results of adjacent macroblocks MB that are adjacent left, above left, above, and above right to the processing target macroblock MB is necessary due to the aforementioned dependencies. However, in the case of processing each row (macroblock line) of the picture Pic in parallel, simply processing macroblocks MB positioned in the same column of the different rows in parallel makes it impossible to obtain information on adjacent macroblocks MB necessary for each processing target macroblock MB, so that such parallel processing cannot be achieved. In view of this, in the image decoding apparatus and the image coding apparatus in Patent Reference 1 mentioned above, the column in which the processing target macroblock MB is positioned is made different in each row, thereby processing each row of the picture Pic in parallel.
Thus, by setting the position (column) of the processing target macroblock for each of the macroblock processing units operating in parallel, processing of each adjacent macroblock of the processing target macroblock MB can always be completed beforehand. This enables the aforementioned adjacent macroblock dependencies to be solved, with it being possible to achieve parallel processing for each row of the picture Pic.